package com.fosun.sprcore.tools.generatecode.project;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fosun.sprcore.tools.generatecode.base.GenerateCodeMain;
import com.fosun.sprcore.tools.generatecode.template.CrudModuleFileTemplate;
import com.fosun.sprcore.tools.generatecode.template.ModuleFileTemplate;
import com.fosun.sprcore.tools.generatecode.template.crudmodulefile.AdditionListSelectField;
import com.fosun.sprcore.tools.generatecode.template.CrudModuleFileTemplate.TableColumnModel;

public class SprLearnGenerateCodeMain extends GenerateCodeMain {

	public static void main(String[] args) throws Exception {
		GenerateCodeMain main = new GenerateCodeMain();
		main.init();
//		shiroService(main);
		commonRemote(main);
		SprLearnGenerateCodeMain.v2_article_type_video(main);
		SprLearnGenerateCodeMain.v2_article_type_question(main);
		SprLearnGenerateCodeMain.v2_article_type_image(main);
		SprLearnGenerateCodeMain.v2_article2tbitem(main);
		SprLearnGenerateCodeMain.v2_article2catalog(main);
		SprLearnGenerateCodeMain.v2_article(main);
		SprLearnGenerateCodeMain.v2_tbitem2catalog(main);
		SprLearnGenerateCodeMain.v2_tbshop(main);
		SprLearnGenerateCodeMain.v2_tbitem(main);
		SprLearnGenerateCodeMain.v2_user(main);
		SprLearnGenerateCodeMain.v2_user2tbshop(main);
	}
	
//	private static void shiroService(GenerateCodeMain main) throws Exception{
//		if(true){
//			ModuleFileTemplate t = new ModuleFileTemplate();
//			t.setProjectWar("");
//			t.setPackageName("com.fosun.spr.plugin.uuc.shiro");
//			t.setModuleName("uucLogin");
////			t.addServcieModelList(new ModuleFileTemplate.ServcieModel("listDictValue",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,ModuleFileTemplate.ServcieModel.METHODTYPE_LIST));
////			t.addServcieModelList(new ModuleFileTemplate.ServcieModel("create",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_POST,null));
////			t.addServcieModelList(new ModuleFileTemplate.ServcieModel("update",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_POST,null));
////			t.addServcieModelList(new ModuleFileTemplate.ServcieModel("listBuildingregion",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,null));
////			t.addServcieModelList(new ModuleFileTemplate.ServcieModel("delete",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_POST,null));			t.addServcieModelList(new ModuleFileTemplate.ServcieModel("getUserByLoginNo",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,null));
//			t.addServcieModelList(new ModuleFileTemplate.ServcieModel("submitLogin",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_POST,null));
//			t.addServcieModelList(new ModuleFileTemplate.ServcieModel("submitLogout",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,null));
//			t.addServcieModelList(new ModuleFileTemplate.ServcieModel("needLoginError",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,null));
//			t.addServcieModelList(new ModuleFileTemplate.ServcieModel("listUserMenus",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,ModuleFileTemplate.ServcieModel.METHODTYPE_LIST));
//			t.addServcieModelList(new ModuleFileTemplate.ServcieModel("listPrivilegeByUserId",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,null));
//			t.addServcieModelList(new ModuleFileTemplate.ServcieModel("listUrlPrivileges",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,ModuleFileTemplate.ServcieModel.METHODTYPE_LIST));
//			t.addServcieModelList(new ModuleFileTemplate.ServcieModel("hasPrivilege",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_POST,null));
//			t.generate(main);			
//		}	
//	}
	
	private static void commonRemote(GenerateCodeMain main) throws Exception{
		ModuleFileTemplate t = new ModuleFileTemplate();
		t.setProjectWar("spr_boot_demo");
		t.setPackageName("com.fosun.spr.plugin.learn.webservcie");
		t.setModuleName("learnCommonRemote");
		//已经生成文件，不允许在重复生成
//		t.addServcieModelList(new ModuleFileTemplate.ServcieModel("list_v2_article",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,ModuleFileTemplate.ServcieModel.METHODTYPE_LIST));
//		t.addServcieModelList(new ModuleFileTemplate.ServcieModel("list_v2_article_catalog",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,ModuleFileTemplate.ServcieModel.METHODTYPE_LIST));
//		t.addServcieModelList(new ModuleFileTemplate.ServcieModel("list_v2_article_column",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,ModuleFileTemplate.ServcieModel.METHODTYPE_LIST));
//		t.addServcieModelList(new ModuleFileTemplate.ServcieModel("list_v2_article_from",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,ModuleFileTemplate.ServcieModel.METHODTYPE_LIST));
//		t.addServcieModelList(new ModuleFileTemplate.ServcieModel("list_v2_tbitem",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,ModuleFileTemplate.ServcieModel.METHODTYPE_LIST));
//		t.addServcieModelList(new ModuleFileTemplate.ServcieModel("list_v2_tbitem_catalog",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,ModuleFileTemplate.ServcieModel.METHODTYPE_LIST));
//		t.addServcieModelList(new ModuleFileTemplate.ServcieModel("list_v2_article_type_parsefile",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,ModuleFileTemplate.ServcieModel.METHODTYPE_LIST));
		t.addServcieModelList(new ModuleFileTemplate.ServcieModel("list_v2_user",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,ModuleFileTemplate.ServcieModel.METHODTYPE_LIST));
		t.addServcieModelList(new ModuleFileTemplate.ServcieModel("list_v2_tbshop",ModuleFileTemplate.ServcieModel.SUBMITMETHOD_GET,ModuleFileTemplate.ServcieModel.METHODTYPE_LIST));
		t.generate(main);			
	}

	private static void demo_table(GenerateCodeMain main) throws Exception {
		CrudModuleFileTemplate t = new CrudModuleFileTemplate();
		// t.setProjectWar("");
		t.setPackageName("com.fosun.spr.plugin.learn");
		t.setModuleName("v2Tbshop");

		t.setModuleLabel("淘宝店管理-v2_tbshop");
		t.setDbTablePrefix("v2");
		t.setDbTablePrefixTag("_");
		t.setDbTableName("tbshop");
		t.setUniqueColumn("title");
		t.setKeywordColumns(new String[] {"title"});
		t.setAdditionListSelectFields(null);

		List<TableColumnModel> cList = new ArrayList<TableColumnModel>();
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("idd");
			column.setComment("ID");

			column.setColumnType_display_inListLabelSql("id");
			column.setIsInList("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("title");
			column.setDataType("string");
			column.setComment("店名");
			column.setIsNotNull("1");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("article_id_name");
			column.setComment("文章");

			column.setColumnType_display_inListLabelSql("SELECT ab.title FROM v2_article ab WHERE ab.id=t1.article_id");
			column.setIsInList("1");
			cList.add(column);
		}
		t.setTableColumnModelList(cList);
		t.generate(main);
	}
	private static void v2_article_type_video(GenerateCodeMain main) throws Exception {
		CrudModuleFileTemplate t = new CrudModuleFileTemplate();
		// t.setProjectWar("");
		t.setPackageName("com.fosun.spr.plugin.learn");
		t.setModuleName("v2ArticleTypeVideo");

		t.setModuleLabel("文章视频信息管理-v2_article_type_video");
		t.setDbTablePrefix("v2");
		t.setDbTablePrefixTag("_");
		t.setDbTableName("article_type_video");
		//t.setUniqueColumn("id");
		t.setKeywordColumns(new String[] {});
		t.setAdditionListSelectFields(null);

		List<TableColumnModel> cList = new ArrayList<TableColumnModel>();
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("article_id");
			column.setDataType("int");
			column.setComment("文章ID");
			column.setIsNotNull("1");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_article");
			//column.setInListLabelSql("SELECT ab.title FROM v2_article ab WHERE ab.id=?");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("article_id_name");
			column.setComment("文章");

			column.setColumnType_display_inListLabelSql("SELECT ab.title FROM v2_article ab WHERE ab.id=t1.article_id");
			column.setIsInList("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("from_uuid");
			column.setDataType("string");
			column.setComment("视频的UUID");
			column.setIsNotNull("1");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("can_download");
			column.setDataType("string");
			column.setComment("是否可下载");
			column.setIsNotNull("1");

			column.setDisplayType("radio_dict");
			column.setDisplayTypeValue("YN");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}	
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("download_url");
			column.setDataType("string");
			column.setComment("下载地址");
			column.setIsNotNull("0");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}	
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("no");
			column.setDataType("int");
			column.setComment("排序");
			column.setIsNotNull("0");

			column.setDisplayType("input_number");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		t.setTableColumnModelList(cList);
		t.generate(main);
	}
	
	private static void v2_article_type_question(GenerateCodeMain main) throws Exception {
		CrudModuleFileTemplate t = new CrudModuleFileTemplate();
		// t.setProjectWar("");
		t.setPackageName("com.fosun.spr.plugin.learn");
		t.setModuleName("v2ArticleTypeQuestion");

		t.setModuleLabel("文章问答管理-v2_article_type_question");
		t.setDbTablePrefix("v2");
		t.setDbTablePrefixTag("_");
		t.setDbTableName("article_type_question");
		//t.setUniqueColumn("id");
		t.setKeywordColumns(new String[] {});
		t.setAdditionListSelectFields(null);

		List<TableColumnModel> cList = new ArrayList<TableColumnModel>();
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("article_id");
			column.setDataType("int");
			column.setComment("文章ID");
			column.setIsNotNull("1");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_article");
			//column.setInListLabelSql("SELECT ab.title FROM v2_article ab WHERE ab.id=?");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("article_id_name");
			column.setComment("文章");

			column.setColumnType_display_inListLabelSql("SELECT ab.title FROM v2_article ab WHERE ab.id=t1.article_id");
			column.setIsInList("1");
			cList.add(column);
		}		
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("user_name");
			column.setDataType("string");
			column.setComment("作者名");
			column.setIsNotNull("1");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("answer_content");
			column.setDataType("string");
			column.setComment("回答内容");
			column.setIsNotNull("1");

			column.setDisplayType("textarea");
			column.setDisplayTypeValue("");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("no");
			column.setDataType("int");
			column.setComment("排序");
			column.setIsNotNull("0");

			column.setDisplayType("input_number");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		t.setTableColumnModelList(cList);
		t.generate(main);
	}
	private static void v2_article_type_image(GenerateCodeMain main) throws Exception {
		CrudModuleFileTemplate t = new CrudModuleFileTemplate();
		// t.setProjectWar("");
		t.setPackageName("com.fosun.spr.plugin.learn");
		t.setModuleName("v2ArticleTypeImage");

		t.setModuleLabel("文章组图管理-v2_article_type_image");
		t.setDbTablePrefix("v2");
		t.setDbTablePrefixTag("_");
		t.setDbTableName("article_type_image");
		//t.setUniqueColumn("id");
		t.setKeywordColumns(new String[] {});
		t.setAdditionListSelectFields(null);

		List<TableColumnModel> cList = new ArrayList<TableColumnModel>();
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("article_id");
			column.setDataType("int");
			column.setComment("文章ID");
			column.setIsNotNull("1");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_article");
			//column.setInListLabelSql("SELECT ab.title FROM v2_article ab WHERE ab.id=?");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("article_id_name");
			column.setComment("文章");

			column.setColumnType_display_inListLabelSql("SELECT ab.title FROM v2_article ab WHERE ab.id=t1.article_id");
			column.setIsInList("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("file_image");
			column.setDataType("string");
			column.setComment("文图片链接");
			column.setIsNotNull("1");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("no");
			column.setDataType("int");
			column.setComment("排序");
			column.setIsNotNull("0");

			column.setDisplayType("input_number");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		t.setTableColumnModelList(cList);
		t.generate(main);
	}
	private static void v2_article2tbitem(GenerateCodeMain main) throws Exception {
		CrudModuleFileTemplate t = new CrudModuleFileTemplate();
		// t.setProjectWar("");
		t.setPackageName("com.fosun.spr.plugin.learn");
		t.setModuleName("v2Article2tbitem");

		t.setModuleLabel("文章淘宝商品管理-v2_article2tbitem");
		t.setDbTablePrefix("v2");
		t.setDbTablePrefixTag("_");
		t.setDbTableName("article2tbitem");
		//t.setUniqueColumn("id");
		t.setKeywordColumns(new String[] {});
		t.setAdditionListSelectFields(null);

		List<TableColumnModel> cList = new ArrayList<TableColumnModel>();
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("article_id");
			column.setDataType("int");
			column.setComment("文章ID");
			column.setIsNotNull("1");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_article");
			//column.setInListLabelSql("SELECT ab.title FROM v2_article ab WHERE ab.id=?");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("article_id_name");
			column.setComment("文章");

			column.setColumnType_display_inListLabelSql("SELECT ab.title FROM v2_article ab WHERE ab.id=t1.article_id");
			column.setIsInList("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("tbitem_id");
			column.setDataType("int");
			column.setComment("淘宝商品");
			column.setIsNotNull("1");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_tbitem");
			//column.setInListLabelSql("SELECT ab.title FROM v2_tbitem ab WHERE ab.id=?");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("tbitm_id_name");
			column.setComment("淘宝商品");

			column.setColumnType_display_inListLabelSql("SELECT ab.title FROM v2_tbitem ab WHERE ab.id=t1.tbitem_id");
			column.setIsInList("1");
			cList.add(column);
		}
		t.setTableColumnModelList(cList);
		t.generate(main);
	}	
	private static void v2_article2catalog(GenerateCodeMain main) throws Exception {
		CrudModuleFileTemplate t = new CrudModuleFileTemplate();
		// t.setProjectWar("");
		t.setPackageName("com.fosun.spr.plugin.learn");
		t.setModuleName("v2Article2catalog");

		t.setModuleLabel("文章分类管理-v2_article2catalog");
		t.setDbTablePrefix("v2");
		t.setDbTablePrefixTag("_");
		t.setDbTableName("article2catalog");
		//t.setUniqueColumn("id");
		t.setKeywordColumns(new String[] {});
		t.setAdditionListSelectFields(null);
		t.setInsertModelJavaAddtionAtService("");
		t.setUpdateModelJavaAddtionAtService("");

		List<TableColumnModel> cList = new ArrayList<TableColumnModel>();
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("article_id");
			column.setDataType("int");
			column.setComment("文章ID");
			column.setIsNotNull("1");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_article");
			//column.setInListLabelSql("SELECT ab.title FROM v2_tbitem ab WHERE ab.id=?");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("article_id_name");
			column.setComment("文章");

			column.setColumnType_display_inListLabelSql("SELECT ab.title FROM v2_article ab WHERE ab.id=t1.article_id");
			column.setIsInList("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("catalog_id");
			column.setDataType("int");
			column.setComment("分类");
			column.setIsNotNull("1");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_article_catalog");	
			//column.setInListLabelSql("SELECT ab.title FROM v2_article_catalog ab WHERE ab.id=?");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("catalog_id_name");
			column.setComment("分类");

			column.setColumnType_display_inListLabelSql("SELECT ab.title FROM v2_article_catalog ab WHERE ab.id=t1.catalog_id");
			column.setIsInList("1");
			cList.add(column);
		}
		t.setTableColumnModelList(cList);
		t.generate(main);
	}	
	private static void v2_article(GenerateCodeMain main) throws Exception {
		CrudModuleFileTemplate t = new CrudModuleFileTemplate();
		// t.setProjectWar("");
		t.setPackageName("com.fosun.spr.plugin.learn");
		t.setModuleName("v2Article");

		t.setModuleLabel("文章管理-v2_article");
		t.setDbTablePrefix("v2");
		t.setDbTablePrefixTag("_");
		t.setDbTableName("article");
		t.setUniqueColumn("title");
		t.setKeywordColumns(new String[] {"title"});
		t.setAdditionListSelectFields(null);
		t.setInsertModelJavaAddtionAtService("db.setPublishStatus(\"published\");db.setPublishTime(new Date());");


		List<TableColumnModel> cList = new ArrayList<TableColumnModel>();
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("idd");
			column.setComment("ID");

			column.setColumnType_display_inListLabelSql("id");
			column.setIsInList("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("from_url");
			column.setDataType("string");
			column.setComment("文章来源链接");
			column.setIsNotNull("0");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("title");
			column.setDataType("string");
			column.setComment("文章标题");
			column.setIsNotNull("1");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("article_type");
			column.setDataType("string");
			column.setComment("文章类型");
			column.setIsNotNull("0");

			column.setDisplayType("radio_dict");
			column.setDisplayTypeValue("article_type");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("parsefile_id");
			column.setDataType("int");
			column.setComment("解析页面");
			column.setIsNotNull("1");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_article_type_parsefile");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("parsefile_id_name");
			column.setComment("解析页面");

			column.setColumnType_display_inListLabelSql("SELECT ab.name FROM v2_article_type_parsefile ab WHERE ab.id=t1.parsefile_id");
			column.setIsInList("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("column_id");
			column.setDataType("int");
			column.setComment("专栏column_id");
			column.setIsNotNull("0");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_article_column");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("column_id_name");
			column.setComment("专栏");

			column.setColumnType_display_inListLabelSql("SELECT ab.title FROM v2_article_column ab WHERE ab.id=t1.column_id");
			column.setIsInList("1");
			cList.add(column);
		}	
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("from_id");
			column.setDataType("int");
			column.setComment("来源from_id");
			column.setIsNotNull("1");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_article_from");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("from_id_name");
			column.setComment("来源");

			column.setColumnType_display_inListLabelSql("SELECT ab.title FROM v2_article_from ab WHERE ab.id=t1.from_id");
			column.setIsInList("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("belong_user_id");
			column.setDataType("int");
			column.setComment("所属用户");
			column.setIsNotNull("1");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_user");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}		
//		if (true) {
//			TableColumnModel column = new TableColumnModel();
//			column.setColumnType("db");
//			column.setFieldName("publish_status");
//			column.setDataType("string");
//			column.setComment("发布状态");
//			column.setIsNotNull("1");
//
//			column.setDisplayType("radio_dict");
//			column.setDisplayTypeValue("publish_status");
//
//			column.setIsInList("0");
//			column.setIsInCreate("1");
//			column.setIsInUpdate("1");
//			cList.add(column);
//		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("init_favorites");
			column.setDataType("int");
			column.setComment("收藏数");
			column.setIsNotNull("1");

			column.setDisplayType("input_number");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("file_cover_image");
			column.setDataType("string");
			column.setComment("封面图片");
			column.setIsNotNull("0");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}	
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("content");
			column.setDataType("string");
			column.setComment("内容");
			column.setIsNotNull("0");

			column.setDisplayType("textarea");
			column.setDisplayTypeValue("");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("column_no");
			column.setDataType("int");
			column.setComment("在column下的排序");
			column.setIsNotNull("0");

			column.setDisplayType("input_number");
			column.setDisplayTypeValue("");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		t.setTableColumnModelList(cList);
		t.generate(main);
	}	
	
	private static void v2_tbitem2catalog(GenerateCodeMain main) throws Exception {
		CrudModuleFileTemplate t = new CrudModuleFileTemplate();
		// t.setProjectWar("");
		t.setPackageName("com.fosun.spr.plugin.learn");
		t.setModuleName("v2Tbitem2catalog");

		t.setModuleLabel("淘宝商品分类管理-v2_tbitem2catalog");
		t.setDbTablePrefix("v2");
		t.setDbTablePrefixTag("_");
		t.setDbTableName("tbitem2catalog");
		//t.setUniqueColumn("id");
		t.setKeywordColumns(new String[] {});
		t.setAdditionListSelectFields(null);

		List<TableColumnModel> cList = new ArrayList<TableColumnModel>();
		
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("tbitem_id");
			column.setDataType("int");
			column.setComment("淘宝商品ID");
			column.setIsNotNull("1");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_tbitem");
			//column.setInListLabelSql("SELECT ab.title FROM v2_tbitem ab WHERE ab.id=?");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("article_id_name");
			column.setComment("淘宝商品");

			column.setColumnType_display_inListLabelSql("SELECT ab.title FROM v2_tbitem ab WHERE ab.id=t1.tbitem_id");
			column.setIsInList("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("catalog_id");
			column.setDataType("int");
			column.setComment("分类商品ID");
			column.setIsNotNull("1");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_tbitem_catalog");
			//column.setInListLabelSql("SELECT ab.title FROM v2_tbitem_catalog ab WHERE ab.id=?");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("catalog_id_name");
			column.setComment("分类商品");

			column.setColumnType_display_inListLabelSql("SELECT ab.title FROM v2_tbitem_catalog ab WHERE ab.id=t1.catalog_id");
			column.setIsInList("1");
			cList.add(column);
		}
		t.setTableColumnModelList(cList);
		t.generate(main);
	}	
	
	private static void v2_tbshop(GenerateCodeMain main) throws Exception {
		CrudModuleFileTemplate t = new CrudModuleFileTemplate();
		// t.setProjectWar("");
		t.setPackageName("com.fosun.spr.plugin.learn");
		t.setModuleName("v2Tbshop");

		t.setModuleLabel("淘宝店铺管理-v2_tbshop");
		t.setDbTablePrefix("v2");
		t.setDbTablePrefixTag("_");
		t.setDbTableName("tbshop");
		t.setUniqueColumn("title");
		t.setKeywordColumns(new String[] {"title"});
		t.setAdditionListSelectFields(null);
		t.setInsertModelJavaAddtionAtService("db.setTbUrlTime(new Date());");

		List<TableColumnModel> cList = new ArrayList<TableColumnModel>();
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("idd");
			column.setComment("ID");

			column.setColumnType_display_inListLabelSql("id");
			column.setIsInList("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("title");
			column.setDataType("string");
			column.setComment("店名");
			column.setIsNotNull("1");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("taobao_url");
			column.setDataType("string");
			column.setComment("店铺链接");
			column.setIsNotNull("1");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("init_favorites");
			column.setDataType("int");
			column.setComment("收藏数");
			column.setIsNotNull("0");

			column.setDisplayType("input_number");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		t.setTableColumnModelList(cList);
		t.generate(main);
	}
	
	private static void v2_tbitem(GenerateCodeMain main) throws Exception {
		CrudModuleFileTemplate t = new CrudModuleFileTemplate();
		// t.setProjectWar("");
		t.setPackageName("com.fosun.spr.plugin.learn");
		t.setModuleName("v2Tbitem");

		t.setModuleLabel("淘宝商品管理-v2_tbitem");
		t.setDbTablePrefix("v2");
		t.setDbTablePrefixTag("_");
		t.setDbTableName("tbitem");
		t.setUniqueColumn("title");
		t.setKeywordColumns(new String[] {"title"});
		t.setAdditionListSelectFields(null);
		t.setInsertModelJavaAddtionAtService("db.setTbUrlTime(new Date());");

		List<TableColumnModel> cList = new ArrayList<TableColumnModel>();
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("idd");
			column.setComment("ID");

			column.setColumnType_display_inListLabelSql("id");
			column.setIsInList("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("title");
			column.setDataType("string");
			column.setComment("商品名称");
			column.setIsNotNull("1");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("from_url");
			column.setDataType("string");
			column.setComment("商品原链接");
			column.setIsNotNull("1");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("tb_url");
			column.setDataType("string");
			column.setComment("商品联盟链接");
			column.setIsNotNull("1");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("prices");
			column.setDataType("string");
			column.setComment("价格");
			column.setIsNotNull("1");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("prices_up");
			column.setDataType("string");
			column.setComment("价格（UP）");
			column.setIsNotNull("0");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("file_image");
			column.setDataType("string");
			column.setComment("商品图片");
			column.setIsNotNull("1");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}			
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("init_favorites");
			column.setDataType("int");
			column.setComment("收藏数");
			column.setIsNotNull("0");

			column.setDisplayType("input_number");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("no");
			column.setDataType("int");
			column.setComment("排序");
			column.setIsNotNull("0");

			column.setDisplayType("input_number");
			column.setDisplayTypeValue("");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}	
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("tbshop_id");
			column.setDataType("int");
			column.setComment("淘宝店");
			column.setIsNotNull("0");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_tbshop");	
			//column.setInListLabelSql("SELECT ab.title FROM v2_article_catalog ab WHERE ab.id=?");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}		
//		if (true) {
//			TableColumnModel column = new TableColumnModel();
//			column.setColumnType("db");
//			column.setFieldName("tb_url_time");
//			column.setDataType("string");
//			column.setComment("店铺链接时间");
//			column.setIsNotNull("0");
//
//			column.setDisplayType("input_text");
//			column.setDisplayTypeValue("");
//
//			column.setIsInList("0");
//			column.setIsInCreate("0");
//			column.setIsInUpdate("0");
//			cList.add(column);
//		}
		t.setTableColumnModelList(cList);
		t.generate(main);
	} 
	
	
	
	private static void v2_user(GenerateCodeMain main) throws Exception {
		CrudModuleFileTemplate t = new CrudModuleFileTemplate();
		// t.setProjectWar("");
		t.setPackageName("com.fosun.spr.plugin.learn");
		t.setModuleName("v2User");

		t.setModuleLabel("用户管理-v2_user");
		t.setDbTablePrefix("v2");
		t.setDbTablePrefixTag("_");
		t.setDbTableName("user");
		t.setUniqueColumn("user_name");
		t.setKeywordColumns(new String[] {"user_name"});
		t.setAdditionListSelectFields(null);

		List<TableColumnModel> cList = new ArrayList<TableColumnModel>();
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("user_name");
			column.setDataType("string");
			column.setComment("用户名");
			column.setIsNotNull("1");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("file_portrait_image");
			column.setDataType("string");
			column.setComment("头像链接地址");
			column.setIsNotNull("1");

			column.setDisplayType("input_text");
			column.setDisplayTypeValue("");

			column.setIsInList("1");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		t.setTableColumnModelList(cList);
		t.generate(main);
	}
	
	private static void v2_user2tbshop(GenerateCodeMain main) throws Exception {
		CrudModuleFileTemplate t = new CrudModuleFileTemplate();
		// t.setProjectWar("");
		t.setPackageName("com.fosun.spr.plugin.learn");
		t.setModuleName("v2User2tbshop");

		t.setModuleLabel("帐号2店铺-v2_user2tbshop");
		t.setDbTablePrefix("v2");
		t.setDbTablePrefixTag("_");
		t.setDbTableName("user2tbshop");
		//t.setUniqueColumn("id");
		t.setKeywordColumns(new String[] {"user_id","tbshop_id"});
		t.setAdditionListSelectFields(null);

		List<TableColumnModel> cList = new ArrayList<TableColumnModel>();
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("idd");
			column.setComment("ID");

			column.setColumnType_display_inListLabelSql("id");
			column.setIsInList("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("user_id");
			column.setDataType("int");
			column.setComment("用户");
			column.setIsNotNull("1");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_user");	
			//column.setInListLabelSql("SELECT ab.title FROM v2_article_catalog ab WHERE ab.id=?");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("user_id_name");
			column.setComment("用户");

			column.setColumnType_display_inListLabelSql("SELECT ab.user_name FROM v2_user ab WHERE ab.id=t1.user_id");
			column.setIsInList("1");
			cList.add(column);
		}		
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("db");
			column.setFieldName("tbshop_id");
			column.setDataType("int");
			column.setComment("淘宝店");
			column.setIsNotNull("1");

			column.setDisplayType("select_remote");
			column.setDisplayTypeValue("/api/learnCommonRemote/list_v2_tbshop");	
			//column.setInListLabelSql("SELECT ab.title FROM v2_article_catalog ab WHERE ab.id=?");

			column.setIsInList("0");
			column.setIsInCreate("1");
			column.setIsInUpdate("1");
			cList.add(column);
		}	
		if (true) {
			TableColumnModel column = new TableColumnModel();
			column.setColumnType("display");
			column.setFieldName("tbshop_id_name");
			column.setComment("淘宝店");

			column.setColumnType_display_inListLabelSql("SELECT ab.title FROM v2_tbshop ab WHERE ab.id=t1.tbshop_id");
			column.setIsInList("1");
			cList.add(column);
		}
		t.setTableColumnModelList(cList);
		t.generate(main);
	}
}
